home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / NEW / A-Newest / TORPET.d64 / piano.c (.txt) < prev    next >
Commodore BASIC  |  2009-10-12  |  13KB  |  528 lines

  1. 1 REM" [166] PETER PONZO
  2. 2 [143]" SPC( 49 MARGARET AV. S.
  3. 3 REM" [166] WATERLOO, ONT.
  4. 4 [143]" SPC(
  5. 5 REM" [166] FOR COMMODORE-64
  6. 6 [143]" SPC(
  7. 7 REM" [166] DEC22/82
  8. 8 [143]"
  9. 10 PRINT"[147]":POKE53281,15:POKE53280,12:PRINT"[144]"
  10. 20 DIMN(255),P(255)
  11. 30 GOSUB10000:REM* INITIALIZE
  12. 40 GOSUB1900: REM* TITLE
  13. 50 GOSUB1000: REM* PIANO KEYBOARD
  14. 60 IFNO=0THENGOSUB50000:REM* TUNE
  15. 70 GOTO2800:  REM* MENU #1
  16. 80 GOSUB1100: REM* KEYBOARD LETTERS
  17. 90 GOSUB2500: REM* INSTRUCTIONS
  18. 115 GOSUB2200:REM* "ENTER NOTES"
  19. 120 GOSUB1400:REM* INPUT NOTES
  20. 130 GOSUB2000:REM* ERASE LETTERS
  21. 140 GOSUB1200:REM* PLAY SONG
  22. 150 GOSUB500: REM* MENU #2
  23. 160 GOTO2800
  24. 200 REM START ALL VOICES
  25. 201 REM"[184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184]
  26. 205 [151]SID[170]24,15:[139]N[177]LK[167][142]
  27. 210 [151]PA(VC),FR(N)[173]256:[151]PB(VC),FR(N)[175]255
  28. 220 [151]SID[170]4[170]7[172]VC,WV(VC):PV[178]VC:VC[178]VC[170]1:[139]VC[178]3[167]VC[178]0
  29. 225 [142]
  30. 350 [143] SID SETUP
  31. 351 [143]"FREFREFREFREFREFREFREFREFRE
  32. 352 SID=54272:RESTORE
  33. 353 FORX=0TO2
  34. 354 READ AT(X),DE(X),SU(X),RE(X)
  35. 355 READ PW(X),WV(X)
  36. 356 AD(X)=AT(X)*16+DE(X)
  37. 357 SR(X)=SU(X)*16+RE(X)
  38. 358 NEXT X:RE=0
  39. 359 DATA 00,00,15,11,1000,17
  40. 360 DATA 00,00,15,11,1000,17
  41. 361 DATA 00,00,15,11,1000,17
  42. 362 FORX=0TO2:Y=7*X:IFRE<RE(X)THENRE=RE(X)
  43. 363 POKESID+5+Y,AD(X)
  44. 364 POKESID+6+Y,SR(X)
  45. 365 POKESID+2+Y,PW(X)/256
  46. 366 POKESID+3+Y,PW(X)AND255
  47. 367 POKESID+4+Y,8:REM RESET OSC.
  48. 368 POKESID+4+Y,WV(X)-1:REM NULL
  49. 369 NEXT X:GOSUB60200
  50. 370 K$="AWSEDFTGYHUJKOLP:;*=^"+CHR$(13)+"0":REM 0=PAUSE
  51. 371 LK=LEN(K$):KK=2^(1/12)
  52. 372 F1=523.251132:REM 1ST NOTE
  53. 373 DIM FR(LK),K(255)
  54. 374 FORI=1TOLK-1
  55. 375 K=ASC(MID$(K$,I,1)):K(K)=I
  56. 376 FR(I)=5.8*F1+30
  57. 378 F1=F1*KK:NEXT I
  58. 379 FORX=0TO2:Y=7*X:PA(X)=SID+1+Y:PB(X)=SID+Y:NEXT
  59. 380 K(I)=0:FR(I)=0:REM PAUSE=NOTE '0'
  60. 381 RETURN
  61. 500 REM****************
  62. 501 REM*   MENU #2    *
  63. 502 REM****************
  64. 505 PRINT""SPC(S1)"      PRESS RETURN[146] TO BEGIN AGAIN"
  65. 506 PRINTSPC(S1)"1[146]-PLAY AGAIN?        2[146]-ADD NOTES?"
  66. 507 PRINTSPC(S1)"3[146]-CORRECT BAD NOTE?  4[146]-SAVE ON DISK?"
  67. 508 PRINTSPC(S1)"5[146]-SAVE ON TAPE?      6[146]-CHANGE INTRO?"
  68. 509 PRINTSPC(S1)"7[146]-CHANGE VOICE?      8[146]-OTHER CHANGE?"
  69. 510 PRINTSPC(S1)"  [184][184][184][184][184][184][184][184][184][184][184][184][184]PICK ONE![146][184][184][184][184][184][184][184][184][184][184][184][184][184]":GOSUB60200
  70. 512 GETA$:IFA$<>""THEN512
  71. 513 GETA$:IFA$=""THEN513
  72. 514 GOSUB3000:IFA$=CHR$(13)THENGOTO2800
  73. 515 IFVAL(A$)=0THEN505
  74. 516 ONVAL(A$)GOSUB1200,2900,5000,2600,1600,520,30000,31000
  75. 517 GOTO505
  76. 520 PRINT"[147]HOLD ON WHILE I SAVE THE NOTES.."
  77. 530 SV=6*4096-2:I=0
  78. 540 I=I+1:POKESV+2*I,N(I):POKESV+2*I+1,P(I):PRINT"NOTE   [157][157][157]"I
  79. 550 IFI<MTHEN540
  80. 555 FORJ=1TO20:POKESV+2*I+J,0:NEXT
  81. 560 PRINT"[147]  CHANGING DATA....."
  82. 595 POKE53281,6
  83. 600 PRINT"50009DATA"M:POKE198,3:POKE631,13:POKE632,13:POKE633,13
  84. 605 PRINT"K=50010:M="M":I=-19:SV=6*4096-1"
  85. 610 PRINT"GOTO620":END
  86. 620 I=I+20:S$="":IFI>2*MTHENPRINT"[147][144]":POKE53281,15:LIST50300-50305
  87. 630 PRINT"[147]";:POKE198,3:POKE631,13:POKE632,13:POKE633,13
  88. 632 PRINT""K"DATA";
  89. 635 FORJ=0TO9:S=PEEK(SV+I+2*J):P=PEEK(SV+I+2*J+1)
  90. 640 A$=MID$(STR$(S),2):B$=MID$(STR$(P),2)
  91. 650 S$=S$+A$+","+B$+",":NEXT
  92. 660 PRINTS$+"[157] ":K=K+1:PRINT"K="K":M="M":I="I":SV="SV
  93. 665 PRINT"GOTO620":END
  94. 1000 REM*********************
  95. 1001 :
  96. 1002 REM** CREATE KEYBOARD **
  97. 1003 :
  98. 1004 REM*********************
  99. 1005 N=1
  100. 1006 P1$="[146][144][167]":P2$=P1$:P3$=P1$
  101. 1007 K1$="[144]  [144] ":FORI=1TO12:P1$=P1$+K1$:NEXT
  102. 1008 P1$=P1$+"[144]  [144] [146]"
  103. 1010 K2$="  [146][144][170]":FORI=1TO13:P2$=P2$+K2$:NEXT:L=LEN(P2$):P2$=LEFT$(P2$,L-1)
  104. 1020 P3$=P3$+"  [146][144][167] [146][144][167] [146][144][167] "
  105. 1025 PRINT"":FORI=1TO12:PRINTP2$:NEXT
  106. 1030 PRINT"":FORI=1TO5:PRINTP1$;:NEXT
  107. 1035 PRINT"":FORI=1TO5:PRINTP3$;
  108. 1040 GOSUB200:N=N+5:FORPP=1TO100:NEXT
  109. 1045 NEXT
  110. 1050 PRINT"[146][144][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164]"
  111. 1055 PRINT"";
  112. 1060 PRINT"[144][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163]"
  113. 1070 GOSUB1300:RETURN
  114. 1100 REM**********************
  115. 1101 :
  116. 1102 REM** KEYBOARD LETTERS **
  117. 1103 :
  118. 1104 REM**********************
  119. 1105 PRINT""SPC(S1)"   W[146][165] E[146]     T[146]  Y[146]  U[146]     O[146]  P[146]     *[146]  ^"
  120. 1110 PRINT""SPC(S1);
  121. 1115 PRINT"  A[146]  S[146]  D[146]  F[146]  G[146]  H[146]  J[146]  K[146]  L[146]  :[146]  ;[146]  =[146] RTN"
  122. 1120 RETURN
  123. 1200 REM****************
  124. 1201 :
  125. 1202 REM** PLAY MUSIC **
  126. 1203 :
  127. 1204 REM****************
  128. 1205 POKESID+24,15:ZZ=64
  129. 1206 FORQ=1TOM:N=N(Q):P=P(Q)
  130. 1209 AA=TI:SP=0:IFN>=23THEN1230
  131. 1210 SP=SP(N):H=H(N)
  132. 1230 PRINT"    [157][157][157][157]"Q
  133. 1240 GOSUB200:POKEV3,0
  134. 1245 IFSP<>0THEN1270
  135. 1250 IFTI<AA+PTHEN1250
  136. 1255 GOTO1296
  137. 1259 :
  138. 1260 REM* PLAY PIANO KEY *
  139. 1270 X=SP>255:Y=SP>ZZ:POKEV0,-4*X:SP=SP+255*X:SS=SP+ZZ*(SP>ZZ)
  140. 1275 POKEV1,SP:POKEV2,H:POKEV4,SS:POKEV5,H:POKEV3,4-8*Y
  141. 1280 IFTI<AA+P THEN1280
  142. 1285 GOSUB60100
  143. 1296 NEXT:FORPP=1TO1000:NEXT:POKEV3,0
  144. 1297 GOSUB60200:RETURN
  145. 1300 REM*****************
  146. 1301 :
  147. 1302 REM** PIANO GLISS **
  148. 1303 :
  149. 1304 REM*****************
  150. 1305 POKESID,0:    RETURN:PRINT@*!:  POKESID+24,15
  151. 1310 FORPP=1TO10:R=RND(1):N=23*R+1:GOSUB200
  152. 1315 POKEV1,255*R:POKEV2,100+30*R:POKEV3,4:FORQQ=1TO10:NEXT:NEXT:POKEV3,0
  153. 1320 GOSUB60100:FORPP=0TO500:NEXT
  154. 1325 GOSUB60200:RETURN
  155. 1400 REM*****************
  156. 1401 :
  157. 1402 REM** INPUT NOTES **
  158. 1403 :
  159. 1404 REM*****************
  160. 1405 M=0:N=0:GOTO1460
  161. 1410 M=M+1:M$=MID$(STR$(M),2):PRINT"   [157][157][157]"M$
  162. 1411 GETN$:IFN$=""THENGOSUB60100:GOTO1411
  163. 1412 NN=ASC(N$+Z$):AA=TI
  164. 1415 IFNN=N0THENM=M-1:GOSUB3000:RETURN
  165. 1420 IFNN=N1THENM=M-1:GOTO1411
  166. 1421 M$=MID$(STR$(M),2)
  167. 1422 PRINT"   [157][157][157]"M$
  168. 1425 N=K(NN)
  169. 1430 GOSUB200:SP=SP(N):H=H(N)
  170. 1435 IFSP=0THEN1445
  171. 1438 X=SP>255:POKEV0,-4*X:SP=SP+255*X
  172. 1440 POKEV1,SP:POKEV2,H:POKEV3,4
  173. 1445 IFPEEK(KB)<>64THEN1445:REM WAIT
  174. 1446 P=TI-AA
  175. 1450 GOSUB60100
  176. 1456 POKEV3,0
  177. 1457 GETA$:IFA$<>""THEN1457
  178. 1460 N(M)=N:P(M)=P:IFM>499THENGOSUB3000:RETURN
  179. 1465 GOTO1410
  180. 1600 REM*************************
  181. 1601 :
  182. 1602 REM** SAVE A SONG ON TAPE **
  183. 1603 :
  184. 1604 REM*************************
  185. 1612 GOSUB3000
  186. 1620 PRINTSD$"NAME OF THE SONG";
  187. 1625 INPUTNM$
  188. 1650 OPEN1,1,1,NM$
  189. 1655 PRINT#1,M:PRINT#1,Z$
  190. 1660 FORI=1TOM
  191. 1665 PRINT#1,N(I)
  192. 1666 PRINT#1,P(I)
  193. 1670 NEXT:CLOSE1
  194. 1675 GOSUB3000
  195. 1685 RETURN
  196. 1700 REM*************************
  197. 1701 :
  198. 1702 REM** CALL SONG FROM TAPE **
  199. 1703 :
  200. 1704 REM*************************
  201. 1705 PRINTSD$
  202. 1715 INPUT"NAME YOUR SONG:   [214][157][157][157]";NM$
  203. 1720 IFNM$="[214]"THEN1705
  204. 1725 GOSUB3000
  205. 1730 GOSUB60100
  206. 1740 OPEN1,1,0,NM$
  207. 1745 INPUT#1,M:INPUT"1,Z$
  208. 1760 [129]I[178]1[164]M
  209. 1765 [132]1,N(I)
  210. 1766 [132]1,P(I)
  211. 1775 [130]
  212. 1780 [160]1
  213. 1782 [141]3000:[153]SD$[170]""[170]NM$
  214. 1785 [141]1200
  215. 1795 [142]
  216. 1800 [143]****************************
  217. 1801 :
  218. 1802 [143]** INPUT "CORRECTED" NOTE **
  219. 1803 :
  220. 1804 [143]****************************
  221. 1805 [161]N$
  222. 1810 AA[178]TI:[161]N$:SN[178][194](KB):[139]N$[178]""[167]1810
  223. 1815 NN[178][198](N$):N[178]K(NN)
  224. 1820 [141]200
  225. 1830 [143]* WAIT FOR NOTE TO CHANGE *
  226. 1835 [139][194](KB)[178]SN[167]1835
  227. 1840 P[178][181]((TI[171]AA)[173]2[170]1)
  228. 1845 [141]60200:[142]
  229. 1900 [143]***********
  230. 1901 :
  231. 1902 [143]** TITLE **
  232. 1903 :
  233. 1904 [143]***********
  234. 1905 [153]SD$"STOP"
  235. 1910 [153][166]12)"  (null)WAIT  WAIT    WAIT  WAIT  WAIT    WAIT"
  236. 1915 [153][166]12)" WAIT  WAIT  WAIT  WAIT  WAIT  WAIT  WAIT  WAIT  WAIT"
  237. 1920 [153][166]12)" WAIT  WAIT  WAIT    WAIT  (null) WAIT  WAIT  WAIT"
  238. 1925 [153][166]12)"  WAITSTEP  WAIT  WAIT  WAIT  WAIT(null) WAIT  WAIT  WAIT"
  239. 1930 [153][166]12)" WAIT    WAIT  WAIT  WAIT  WAIT  WAIT    "
  240. 1940 [129]PP[178]0[164]19:[151]1984[170]PP,102:[151]2023[171]PP,102:[130]
  241. 1950 [129]PP[178]0[164]19:[151]56256[170]PP,6:[151]56295[171]PP,6:[130]
  242. 1960 [129]PP[178]0[164]19:[151]1024[170]PP,102:[151]1063[171]PP,102:[130]
  243. 1970 [129]PP[178]0[164]19:[151]55296[170]PP,6:[151]55335[171]PP,6:[130]
  244. 1990 [142]
  245. 2000 [143]******************
  246. 2001 :
  247. 2002 [143]** ERASE LETTERS *
  248. 2003 :
  249. 2004 [143]******************
  250. 2010 [129]PP[178]0[164]39:[151]CRT[170]PP,32:[130]
  251. 2020 [129]PP[178]0[164]39:[151]CRT[170]14[172]WD[170]PP,32:[130]
  252. 2030 [142]
  253. 2100 [143]************************
  254. 2101 :
  255. 2102 [143]**  KEYBOARD/NO SOUND **
  256. 2103 :
  257. 2104 [143]************************
  258. 2106 [129]J[178]1[164]6:[153]"":[129]K[178]1[164]J:[153]"";:[130]:[153][166]S1);
  259. 2110 [129]I[178]1[164]13:[153]"  WAIT ";:[130]:[130]
  260. 2115 [129]J[178]1[164]6:[153]"":[129]K[178]1[164]J:[153]"";:[130]:[153][166]S1);
  261. 2120 [129]I[178]1[164]13:[153]"FN THEN";:[130]:[130]
  262. 2125 [129]J[178]1[164]6:[153]"":[129]K[178]1[164]J:[153]"";:[130]
  263. 2130 [153][166]S1)"FN "[166]6)"THENFN"[166]10)"THENFN"[166]7)"THENFN":[130]
  264. 2135 [153]""[166]S1)"TOTOTOTOTOTOTOTOTOTOTOTOTOTOTOTOTOTOTOTOTOTOTOTOTOTOTOTOTOTOTOTOTOTOTOTOTOTOTO"
  265. 2140 [153]""[166]S1);
  266. 2145 [153]"USRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSR"
  267. 2150 [142]
  268. 2200 [143]*****************
  269. 2201 :
  270. 2202 [143]* 'ENTER NOTES' *
  271. 2203 :
  272. 2204 [143]*****************
  273. 2205 [153]"":C$[178]"WAIT"
  274. 2210 [141]60100:[129]L[178]1[164]10
  275. 2215 [153][166]S1)C$"ENTER NOTES:"
  276. 2216 [153]"ON";
  277. 2220 [139]C$[178]"WAIT"[167]C$[178]"":[137]2230
  278. 2225 C$[178]"WAIT"
  279. 2230 [129]K[178]1[164]100:[130]:[130]
  280. 2235 [153]:[142]
  281. 2500 [143]******************
  282. 2501 :
  283. 2502 [143]** INSTRUCTIONS **
  284. 2503 :
  285. 2504 [143]******************
  286. 2505 [153]""
  287. 2510 [153][166]S1)"               TERMINATE WITH A "[199](34)"."[199](34)"   "
  288. 2515 [153][166]S1)"       ENTER A "[199](34)"0"[199](34)" FOR A PAUSE.       "
  289. 2520 [153][166]S1)"      AFTER A BAD NOTE ENTER "[199](34)"-"[199](34)"      "
  290. 2525 [142]
  291. 2600 [143]*************************
  292. 2601 :
  293. 2602 [143]** SAVE A SONG ON DISK **
  294. 2603 :
  295. 2604 [143]*************************
  296. 2612 [141]3000:NW[178]WV(0)
  297. 2620 [153]SD$"NAME OF THE SONG";
  298. 2625 [133]NM$:[139][200](NM$,1)[179][177]" "[167]NM$[178]" "[170]NM$
  299. 2626 [141]3000
  300. 2630 [153]SD$"WHICH DRIVE ";
  301. 2635 [133]"   0CMDCMDCMD";DR$:D0$[178]DR$
  302. 2636 [141]3000
  303. 2637 [153]SD$"REPLACE AN EXISTING SONG";:[133]"   NCMDCMDCMD";A$
  304. 2638 [139][200](A$,1)[178]"Y"[167]D0$[178]"@"[170]DR$
  305. 2640 [159]15,8,15:R$[178][199](13)
  306. 2650 [159]2,8,2,D0$[170]":"[170]NM$[170]",S,W"
  307. 2651 [141]40000:[139]E0[179][177]0[167]2670
  308. 2655 [152]2,M;R$;NW;R$
  309. 2660 [129]I[178]1[164]M
  310. 2665 [152]2,N(I);R$;P(I);R$:[130]
  311. 2670 [160]2:[160]15
  312. 2675 [141]3000:[142]
  313. 2700 [143]*************************
  314. 2701 :
  315. 2702 [143]** CALL SONG FROM DISK **
  316. 2703 :
  317. 2704 [143]*************************
  318. 2705 [141]63900:[141]3000
  319. 2710 [153]SD$;
  320. 2715 [133]"NAME YOUR SONG:   (null)CMDCMDCMD";NM$:[139]NM$[178]"(null)"[167]2710
  321. 2720 [139][200](NM$,1)[179][177]" "[167]NM$[178]" "[170]NM$
  322. 2730 [141]3000:[159]15,8,15:[153]SD$;
  323. 2740 [159]2,8,2,DR$[170]":"[170]NM$[170]",S,R"
  324. 2745 [141]40000:[139]E0[179][177]0[167][160]2:[160]15:[142]
  325. 2750 [132]2,M,NW
  326. 2760 [129]I[178]1[164]M
  327. 2765 [132]2,A$,B$
  328. 2770 N(I)[178][197](A$):P(I)[178][197](B$):[130]
  329. 2775 [160]2:[160]15:[141]30050
  330. 2776 [141]3000:[153]SD$[170]""[170]NM$
  331. 2790 [141]1200:[141]3000:[142]
  332. 2800 [143]***************
  333. 2801 [143]*   MENU #1   *
  334. 2802 [143]***************
  335. 2804 [141]3000:[141]2000:[141]60200
  336. 2805 [153]SD$"1WAIT:RECALL SONG FROM DISK."
  337. 2810 [153][166]S1)"2WAIT:RECALL SONG FROM TAPE."
  338. 2815 [153][166]S1)"3WAIT:COMPOSE A SONG."
  339. 2816 [153][166]S1)"4WAIT:QUIT."
  340. 2820 [129]I[178]1[164]3
  341. 2825 [153]"ON                                       ":[129]PP[178]1[164]100:[130]
  342. 2830 [153]"ON  FREFREFREFREFREFREFREFREFREFREFREFREFREPICK ONE!WAITFREFREFREFREFREFREFREFREFREFREFREFRE":[129]PP[178]1[164]100:[130]
  343. 2835 [130]
  344. 2840 [141]60200
  345. 2845 [161]A$:[139]A$[178]""[167]2845
  346. 2850 [141]3000
  347. 2855 [139][197](A$)[178]0[167]2805
  348. 2860 [145][197](A$)[137]2865,2870,80
  349. 2861 [153]SD$:[151]SID[170]24,0:[128]
  350. 2865 [141]2700:[137]500
  351. 2870 [141]1700:[137]500
  352. 2900 [143]*************
  353. 2901 :
  354. 2902 [143]* ADD NOTES *
  355. 2903 :
  356. 2904 [143]*************
  357. 2905 :
  358. 2925 [141]3000:[141]1100
  359. 2940 [141]2500:[141]2200
  360. 2950 [141]1410:[141]2000
  361. 2960 [141]1200:[142]
  362. 3000 [143]**************
  363. 3001 :
  364. 3002 [143]**  ERASE   **
  365. 3003 :
  366. 3004 [143]**************
  367. 3005 [153]"";
  368. 3010 [129]T[178]1[164]9:[153]CL$:[130]
  369. 3020 [141]2000
  370. 3040 [153]"";:[142]
  371. 5000 [143]**********************
  372. 5001 :
  373. 5002 [143]** REMOVE BAD NOTES **
  374. 5003 :
  375. 5004 [143]**********************
  376. 5016 [141]3000
  377. 5025 [153]SD$" PRESS @WAIT WHEN BAD NOTE IS PLAYED.     "
  378. 5026 [153][166]S1)"THERE ARE "M" NOTES.."
  379. 5027 [153][166]S1)"START AT NOTE#";:[133]"   SPC(CMDCMDCMD";PZ
  380. 5028 [153][166]S1)"SPEED OF DISPLAY(1 TO 10:1=FAST)";:[133]"   SPC(CMDCMDCMD";PY
  381. 5030 [129]Q[178]PZ[164]M:N[178]N(Q):P[178]P(Q)
  382. 5031 AA[178]TI:SP[178]0:[139]N[177][178]23[167]5033
  383. 5032 SP[178]SP(N):H[178]H(N)
  384. 5033 [153]"    CMDCMDCMDCMD"Q
  385. 5034 [141]200
  386. 5035 [139]SP[179][177]0[167]5038
  387. 5036 [139]TI[179]AA[170]P[167]5036
  388. 5037 [137]5044
  389. 5038 X[178]SP[177]255:[151]V0,[171]4[172]X:SP[178]SP[170]255[172]X
  390. 5039 [151]V1,SP:[151]V2,H:[151]V3,4
  391. 5040 [139]TI[179]AA[170]P [167]5040
  392. 5041 [141]60100
  393. 5042 [151]V3,0
  394. 5044 [129]K[178]1[164]10[172]PY
  395. 5045 [161]N$:BN[178][198](N$[170]Z$)
  396. 5050 [139]BN[178]N2[167]K[178]100:SQ[178]Q:Q[178]M
  397. 5055 [130]:[130]
  398. 5060 [141]3000
  399. 5065 [141]1100
  400. 5070 [153]SD$" PLEASE ENTER CORRECT NOTE #"SQ
  401. 5075 [141]1800
  402. 5080 N(SQ)[178]N::P(SQ)[178]P:[141]3000
  403. 5085 [141]1200
  404. 5090 [141]60100:[141]2000:[142]
  405. 10000 [143]*******************
  406. 10001 :
  407. 10002 [143]**  INITIALIZE   **
  408. 10003 :
  409. 10004 [143]*******************
  410. 10010 [141]1900:Z$[178][199](0)
  411. 10020 [141]350:PS[178][198]("0")
  412. 10025 KB[178]203
  413. 10030 SD$[178]""
  414. 10040 N0[178][198]("."):N1[178][198]("-"):N2[178][198]("@"):WD[178]40:CRT[178]1024
  415. 10050 VD[178]53248
  416. 10060 V0[178]VD[170]16:V1[178]VD[170]4:V2[178]VD[170]5:V3[178]VD[170]21
  417. 10065 V4[178]VD[170]6:V5[178]VD[170]7
  418. 19000 D(0)[178]55295[170]10[172]WD:D(1)[178]55295[170]5[172]WD
  419. 19010 D3[178]CRT[170]14[172]WD:D4[178]D3[170]WD[171]1
  420. 19060 CR(1)[178]1:CR(0)[178]0
  421. 20000 [143]*****************************
  422. 20001 :
  423. 20002 [143]**SPACES FOR KEYBOARD NOTES**
  424. 20003 :
  425. 20004 [143]*****************************
  426. 20005 [134]SP(255),H(255)
  427. 20010 [129]I[178]1[164]LK
  428. 20020 [135]SP,H:SP(I)[178]8[172]SP:H(I)[178]130[171]30[172]H:[130]:SP(0)[178]0
  429. 20030 [141]60200
  430. 20050 [131]3,0,4,1,6,0,7,1,9,0,12,0,13,1,15,0,16,1,18,0,19,1,21,0
  431. 20055 [131]24,0,25,1,27,0,28,1,30,0,33,0,34,1,36,0,37,1,39,0,0,0
  432. 20060 [153][166]11)"CLASSY INTRODUCTION?"
  433. 20062 CL$[178]"                                       "
  434. 20063 BR$[178]"                                        WAITSTOP"
  435. 20065 [161]A$:[139]A$[178]""[167]20065
  436. 20066 [153]"LOAD"
  437. 20067 [139]A$[179][177]"Y"[167]NO[178]1
  438. 20070 [141]32000
  439. 20100 [142]
  440. 30000 [143] CHANGE VOICES
  441. 30001 [143]"FREFREFREFREFREFREFREFREFREFREFREFREFRE
  442. 30010 IFWV(0)=17THENNW=33
  443. 30020 IFWV(0)=33THENNW=65
  444. 30030 IFWV(0)=65THENNW=17
  445. 30040 PRINTSD$"            WAVEFORM"NW:FORPP=1TO500:NEXT
  446. 30050 IFNW=0THENNW=17
  447. 30060 FORPP=0TO2:WV(PP)=NW:NEXT
  448. 31000 REM OTHER CHANGES
  449. 31001 REM"[184][184][184][184][184][184][184][184][184][184][184][184][184]
  450. 31010 [142]
  451. 32000 [143] HANDS
  452. 32001 [143]"FREFREFREFREFRE
  453. 32002 FORPP=0TO62:READX:POKE832+PP,X:NEXT
  454. 32003 FORPP=0TO62:READX:POKE704+PP,X:NEXT
  455. 32004 POKE2042,13:POKE2043,11:POKEVD+21,0
  456. 32005 POKEVD+41,09:POKEVD+42,09:REM COLOUR
  457. 32006 POKEVD+23,12:POKEVD+29,12:REM EXPAND
  458. 32007 POKEVD+27,0:REM PRIORITY
  459. 32009 RETURN
  460. 32010 DATA1,128,0,2,64,0,3,193,128,3,194,64
  461. 32015 DATA3,195,192,3,199,156,3,199,60,227,207,123
  462. 32020 DATA243,222,247,123,221,238,63,255,254
  463. 32025 DATA31,255,248,15,255,240,15,255,224,7,255
  464. 32030 DATA224,7,255,224,7,255,224,3,255,224
  465. 32035 DATA1,255,192,0,128,64,0,255,192
  466. 32050 DATA0,1,128,0,2,64,1,131,192,2,67,192
  467. 32055 DATA27,227,192,61,227,192,222,243,199,239
  468. 32060 DATA115,207,247,251,222,125,255,252
  469. 32065 DATA63,255,248,31,255,248,15,255,248,7,255,248
  470. 32070 DATA3,255,248,3,255,248,3,255,240,3,255
  471. 32085 DATA224,1,255,192,0,192,64,0,255,192
  472. 40000 REM ERROR STATUS
  473. 40001 REM"[184][184][184][184][184][184][184][184][184][184][184][184]
  474. 40010 [132]15,E0,E1$,E2,E3$
  475. 40020 [139]E0[178]0[167][142]
  476. 40030 [141]3000:[153]SD$""E1$
  477. 40040 [129]PP[178]1[164]1000:[130]:[141]3000:[142]
  478. 50000 [143]***********************
  479. 50001 :
  480. 50002 [143]**  INTRODUCTORY TUNE **
  481. 50003 :
  482. 50004 [143]************************
  483. 50005 [135]M:[129]I[178]1[164]M
  484. 50006 [135]N(I),P(I):[130]:[141]50300:[137]1200
  485. 50009 [131] 103
  486. 50010 [131]12,2,8,2,10,2,12,2,15,2,13,2,13,2,17,2,15,2,15,2
  487. 50011 [131]20,2,19,2,20,2,15,2,12,2,8,2,10,2,12,2,13,2,15,2
  488. 50012 [131]17,2,15,2,13,2,12,2,10,2,12,2,8,2,7,2,8,2,10,2
  489. 50013 [131]3,2,7,2,10,2,13,2,12,2,10,2,12,2,8,2,10,2,12,2
  490. 50014 [131]15,2,13,2,13,2,17,2,15,2,15,2,20,2,19,2,20,2,15,2
  491. 50015 [131]12,2,8,2,10,2,12,2,5,2,15,2,13,2,12,2,10,2,8,2
  492. 50016 [131]3,2,8,2,7,2,8,2,12,2,15,2,20,2,15,2,12,2,8,2
  493. 50017 [131]12,2,15,2,18,2,15,2,12,2,8,2,12,2,15,2,17,2,13,2
  494. 50018 [131]10,2,7,2,10,2,13,2,15,2,12,2,8,2,5,2,8,2,12,2
  495. 50019 [131]13,2,10,2,7,2,3,2,7,2,10,2,13,2,12,2,10,2,8,2
  496. 50020 [131]12,2,15,2,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  497. 50300 [153]""[166]12)"**** JESU JOY ****"
  498. 50301 [143]"
  499. 50305 REM" CHANGE NAME ^^^^^ AND SAVE!
  500. 50400 [142]
  501. 60000 [143] RELEASE ALL VOICES
  502. 60001 [143]"FREFREFREFREFREFREFREFREFREFREFREFREFREFREFREFREFREFRE
  503. 60005 FORVV=0TO2:POKESID++4+7*VV,WV(VV)-1:NEXT:VV=0
  504. 60010 FORPP=1TO80*RE:NEXT:RETURN
  505. 60100 REM RELEASE PREVIOUS VOICE
  506. 60101 REM"[184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184]
  507. 60110 [151]SID[170]4[170]7[172]PV,WV(PV)[171]1
  508. 60130 [142]
  509. 60200 [143] STOP SID
  510. 60201 [143]"FREFREFREFREFREFREFREFRE
  511. 60210 FORPP=OTO2:POKESID+4+7*PP,0:NEXT:VV=0:RETURN
  512. 63900 GOSUB3000:PRINTSD$;:INPUT"WHICH DRIVE   0[157][157][157]";DR$:GOSUB3000:B=30:AN=1
  513. 63901 PRINTSD$"HIT RETURN[146] WHEN READY TO SELECT SONG."
  514. 63902 OPEN15,8,15
  515. 63904 OPEN2,8,0,"$"+DR$+":*=S"
  516. 63905 GET#2,A$:GET#2,A$:I$=""
  517. 63906 GETB$:IFST<>0ORB$<>""THEN63918
  518. 63907 FORA=1TOB:GET#2,A$
  519. 63908 IFA$=""THENA$=CHR$(0)
  520. 63909 I$=I$+A$:NEXT:IFAN=1THEN63915
  521. 63910 PRINTSD$"                                     ":PP=7
  522. 63911 U1$=MID$(I$,PP,19):IFLEFT$(U1$,1)<>CHR$(34)THENPP=PP+1:IFPP<19THEN63911
  523. 63912 IFPP>19THEN63917
  524. 63914 IFMID$(U1$,2,1)=" "THENPRINTSD$""U1$
  525. 63915 FORI1=1TO10:I2=TAN(I1):NEXT
  526. 63916 AN=0:I$="":B=32:GOTO63906
  527. 63918 CLOSE2:CLOSE15:RETURN
  528.